package ${mapper};

import ${modelReference};
import ${basePackage}.vo.request.${tableInfo.className}RequestVO;
import org.apache.ibatis.annotations.Param;
import org.mybatis.spring.annotation.MapperScan;

import java.util.List;

/**
 * ${tableInfo.tableComment}Mapper
 *
 * @author ${author}
 * @date ${date}
 **/
@MapperScan
public interface ${tableInfo.className}Mapper {

    /**
     * 查询${tableInfo.tableComment}列表
     *
     * @param requestVO
     * @return
     */
    List<${tableInfo.className}> query${tableInfo.className}List(${tableInfo.className}RequestVO requestVO);

    /**
     * 根据ID查询${tableInfo.tableComment}
     *
     * @param id
     * @return
     */
    ${tableInfo.className} get${tableInfo.className}ById(@Param("id") String id);

    /**
     * 批量新增${tableInfo.tableComment}
     *
     * @param list
     * @return
     */
    Integer batchInsert${tableInfo.className}(List<${tableInfo.className}> list);

    /**
     * 新增${tableInfo.tableComment}
     *
     * @param ${tableInfo.varName}
     * @return
     */
    Integer insert${tableInfo.className}(${tableInfo.className} ${tableInfo.varName});

    /**
     * 根据ID修改${tableInfo.tableComment}
     *
     * @param ${tableInfo.varName}
     * @return
     */
    Integer update${tableInfo.className}ById(${tableInfo.className} ${tableInfo.varName});

    /**
     * 批量修改${tableInfo.tableComment}
     *
     * @param list
     * @return
     */
    Integer batchUpdate${tableInfo.className}(List<${tableInfo.className}> list);

    /**
     * 删除${tableInfo.tableComment}
     *
     * @param id 主键ID
     * @return
     */
    Integer delete${tableInfo.className}ById(@Param("id") String id);

    /**
     * 批量删除${tableInfo.tableComment}
     *
     * @param list
     * @return
     */
    Integer delete${tableInfo.className}ByIdList(List<String> list);
}
